<?php
require_once __DIR__ . '/../vendor/autoload.php';
use phpspider\core\phpspider;
/* Do NOT delete this comment */
/* 不要删除这段注释 */
$configs = array(
    'name' => '糗事百科',
    'log_show' => false, //是否显示日志
    'log_file'=>'data/test.log',
    'log_type' => 'error',
    'tasknum' => 1,
    'timeout' => 5,   //请求时间 5秒
    'max_try' => 5,  //重复爬取5次
    'interval' => 2000,  //设置爬取时间间隔为2秒
    'max_depth' => 5, //爬虫爬取网页深度，超过深度的页面不再采集  默认值为0，即不限制
    'max_fields' => 0, // 爬虫爬取内容网页最大条数 抓取到一定的字段后退出 默认值为0，即不限制
    'user_agent' => phpspider::AGENT_ANDROID, // 爬虫爬取网页所使用的浏览器类型
    'client_ip' => '192.168.0.2',  //爬虫爬取网页所使用的伪IP，用于破解防采集
    //随机伪造IP，用于破解防采集
    'client_ip' => [
        '192.168.0.2',
        '192.168.0.3',
        '192.168.0.4',
    ],
    'export' => array(    //爬虫爬取数据导出 type：导出类型 csv、sql、db  file：导出 csv、sql 文件地址  table：导出db、sql数据表名
        'type' => 'csv',
        'file' => 'data/test.csv', // data目录下
    ),
    'db_config' => array(      //数据库配置
        'host'  => '127.0.0.1',
        'port'  => 3306,
        'user'  => 'root',
        'pass'  => 'root',
        'name'  => 'php_spider',
    ),

    'domains' => array(   //定义爬虫爬取哪些域名下的网页, 非域名下的url会被忽略以提高爬取速度 数组类型 不能为空
        'www.mafengwo.cn',
    ),
    'scan_urls' => array(    //定义爬虫的入口链接, 爬虫从这些链接开始爬取,同时这些链接也是监控爬虫所要监控的链接 数组类型 不能为空
        'http://www.mafengwo.cn/travel-scenic-spot/mafengwo/10088.html'
    ),
    'content_url_regexes' => array( //定义内容页url的规则 数组类型 正则表达式 最好填写以提高爬取效率
        "http://www.mafengwo.cn/i/\d+.html"
    ),
    'list_url_regexes' => array( //定义内容页的抽取规则  规则由一个个field组成, 一个field代表一个数据抽取项 数组类型 不能为空
        "http://www.mafengwo.cn/mdd/base/list/pagedata_citylist\?page=\d+",
        "http://www.mafengwo.cn/gonglve/ajax.php\?act=get_travellist\&mddid=\d+"
    ),
    'fields' => array(  //定义内容页的抽取规则 规则由一个个field组成, 一个field代表一个数据抽取项  数组类型 不能为空
        array(
            // 抽取内容页的文章内容
            'name' => "article_content",  //给此项数据起个变量名
            'selector' => "//*[@id='single-next-link']",  //定义抽取规则, 默认使用xpath  如果使用其他类型的, 需要指定selector_type
            'selector_type' => 'xpath',  //抽取规则的类型 目前可用xpath, jsonpath, regex 默认xpath
            'required' => true, // 定义该field的值是否必须, 默认false  赋值为true的话, 如果该field没有抽取到内容, 该field对应的整条数据都将被丢弃
            'repeated'=> true, //定义该field抽取到的内容是否是有多项, 默认false 赋值为true的话, 无论该field是否真的是有多项, 抽取到的结果都是数组结构
        ),
        array(
            // 抽取内容页的文章作者
            'name' => "article_author",
            'selector' => "//div[contains(@class,'author')]//h2",
            'required' => true
        ),
    ),
);
$spider = new phpspider($configs);


$spider->start();
